查看原文
其他

JavaScript | 如何反转(reverse)数组(array)【译】

lamyoung 白玉无冰 2022-06-10

在javascript如何反转数组呢?如果想反转一个数组,可以使用array的方法reverse()⏪。接下来提供了几种方法,可以实现这个功能。你要思考的是你何时使用它而不是是否使用它😉。


const originalArray = ['a','b', 'c', 'd'];
const newArray = originalArray.reverse();
console.log(newArray);
// ['d', 'c', 'b', 'a']

修改了原数组

值得注意的是,reverse()会修改原数组。

const originalArray = ['a', 'b', 'c'];
const newArray = originalArray.reverse();

console.log(originalArray); // [ 'c', 'b', 'a' ]
console.log(newArray); // [ 'c', 'b', 'a' ]

如何在不修改原数组的情况下反转数组

让我们一起看看在不修改原数组的情况下反转数组的一些方法。👀

使用 slice 和 reverse

const originalArray = ['a', 'b', 'c'];
const newArray = originalArray.slice().reverse();

console.log(originalArray); // ['a', 'b', 'c']
console.log(newArray); // [ 'c', 'b', 'a' ]

使用 spread 和 reverse

const originalArray = ['a', 'b', 'c'];
const newArray = [...originalArray].reverse();

console.log(originalArray); // ['a', 'b', 'c']
console.log(newArray); // [ 'c', 'b', 'a' ]

使用 reduce 和 spread

const originalArray = ['a', 'b', 'c'];
const newArray = originalArray.reduce((accumulator, value) => {
return [value, ...accumulator]
}, []);

console.log(originalArray); // ['a', 'b', 'c']
console.log(newArray); // [ 'c', 'b', 'a' ]

使用 reduceRight 和 spread

const originalArray = ['a', 'b', 'c'];
const newArray = originalArray.reduceRight((accumulator, value) => {
console.log(value);
return [...accumulator, value]
}, []);

console.log(originalArray); // ['a', 'b', 'c']
console.log(newArray); // [ 'c', 'b', 'a' ]

使用reduceRight 和 push

const originalArray = ['a', 'b', 'c'];
const newArray = originalArray.reduceRight((accumulator, value) => {
accumulator.push(value);
return accumulator;
}, []);

console.log(originalArray); // ['a', 'b', 'c']
console.log(newArray); // [ 'c', 'b', 'a' ]

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存